iT邦幫忙

2022 iThome 鐵人賽

DAY 8
3

這篇文章將會接續上一篇「Camera Web Server 相機應用(Part 1)」。

教學原文參考:手把手教學 Camera Web Server 相機應用

四、影像串流與截圖 Stream and Capture

除了前面提及的相機參數設定與預覽之外,此範例也提供 HTTP API 可以直接透過網址呼叫進行指令操作、影像串流或是影像截圖。在網址列輸入「http://<IP>:81/stream」,即可用串流的方式顯示影像,影像會如同前頁所設定的參數(如解析度、畫質等)呈現。這種方式的好處就是可以串接給其他系統進行使用,像是接入 Home Assistant 智慧家庭系統,就能讓它變成一個監視器裝置,後續有機會我們會將此應用獨立做一篇教學文與大家分享。

若是在網址列輸入「http://<IP>/capture」則可以顯示 JPG 格式的影像截圖,除了能儲存圖片檔案,也能方便其他軟體呼叫此 API 來取得 Pixel:Bit 上的即時影像截圖。若要抓取 BMP 格式的截圖則使用「http://<IP>/bmp」。

除此之外,也可以呼叫「http://<IP>/control?var=<key>&val=<val>」來調整相機參數,其中 <key> 代表指令名稱, <val> 代表數值,舉例來說,想要修改亮度參數為 2,則呼叫「http://<IP>/control?var=brightness&val=2」;或是想要將解析度修改為 HD 大小,則輸入「http://<IP>/control?var=framesize&val=11」。這些 API 都可以讓使用者在遠端不需要登入 WEB 介面的情況下,即可以變更相機參數,相當方便。若要深入了解完整 API 參數可以參閱此文件

Pixel:Bit 串流影像

https://www.circuspi.com/wp-content/uploads/2022/04/2.gif

藉由 control API 修改 Pxiel:Bit參數

https://www.circuspi.com/wp-content/uploads/2022/04/1-1.gif

五、人臉偵測與人臉識別 Face Detection & Face Recognition

除了影像的遠端串流與控制,範例中還有一個很有趣的功能就是人臉的偵測與識別!想不到在 ESP32 這樣的 MCU 裡也可以做到人臉偵測吧?在 WEB UI 的下方有兩個滑動開關 Face Detection 與 Face Recognition,分別可以啟用人臉偵測與人臉識別。在開啟 Face Detection 之前需要先將解析度調整到 QVGA (320×240) 之下,否則會出現錯誤訊息,畢竟在做神經網路演算的影像都不需要太大,適度的節省一下處理器資源也是必需的。開啟之後即可以看到預覽影響順利地框選出人臉,即便更新率約略只有每秒 2~3 張 fps,但效果相當不錯,即使稍微把臉遮蔽住,依然可以辨識的出人臉!

Face Detection 人臉偵測

https://www.circuspi.com/wp-content/uploads/2022/04/5-1.jpg

接著再開啟人臉識別功能,會發現在原本黃框外圍多了一個紅色 Intruder Alert(入侵者警告)訊息,這是因為人臉資料庫尚未建立。點選下方 Enroll Face 按鈕,Pixel:Bit 會連續拍攝數張影像進行取樣,完成後建立人臉資料庫即可以看到黃框旁邊的文字變成「Hello SubJect 0」,代表已經順利辨識到了第一位人臉,各位也可以多增加幾張人臉來看看辨識效果如何喔!

小提醒

人臉偵測與人臉識別功能目前僅能適用在 Arduino ESP32 1.0.6 的版本(對應 ESP-IDF 版本為 3.3.5)。
最新版本 2.0.2(對應 ESP-IDF 版本為4.4)因為中間層 middle ware library 不相容,因此是無法使用人臉偵測功能的喔!

Face Recognition 人臉識別

https://www.circuspi.com/wp-content/uploads/2022/04/6-1.jpg

六、小結

本篇教學所使用的範例不但有互動式的網頁介面,可以即時串流影像與截圖,並且透過 HTTP API 的呼叫調整鏡頭參數等,也可以支援人臉偵測與人臉識別的功能,對於想要製作影像相關專案也是很好的入門的範例。後續我們將介紹更多關於 Pixel:Bit 的專案應用文章,有興趣的各位千萬不要錯過了!

更多有趣系列教學文章


上一篇
(Day 7)Camera Web Server 相機應用(Part 1)
下一篇
(Day 9)Pixel:Bit 如何將影像串流到 TFT ?
系列文
PixelBit 可以這樣玩!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言